package com.ssy.lingxi.workflow.service;

import com.ssy.lingxi.workflow.api.model.vo.request.ProcessMemberRoleVO;
import com.ssy.lingxi.workflow.api.model.vo.request.ProcessRemoveMemberRoleVO;

import java.util.List;
import java.util.Map;

/**
 * 流程关联的会员角色、用户角色查询接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-04-28
 */
public interface IProcessRoleService {
    /**
     * 新增/修改用户角色关联的菜单Url设置
     * @param processMemberRoleVO 接口参数
     */
    void updateInsertMemberRoleAuth(ProcessMemberRoleVO processMemberRoleVO);

    /**
     * 从现有的菜单Url配置中，移除会员自定义角色
     * @param processRemoveMemberRoleVO 接口参数
     */
    void removeMemberRole(ProcessRemoveMemberRoleVO processRemoveMemberRoleVO);

    /**
     * 查询外部流程的会员角色名称
     * @param roleId 角色Id
     * @return 角色名称
     */
    String findExternalTaskRoleName(Long roleId);

    /**
     * 查询内部流程的用户角色名称
     * @param memberId 会员Id
     * @param urls 流程关联的url列表
     * @param source 菜单所在客户端枚举
     * @return 用户角色名称
     */
    Map<String, String> findInternalTaskRoleName(Long memberId, List<String> urls, Integer source);
}
